package com.ruoyi.pingjiao.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.pingjiao.domain.Metaclass;
import com.ruoyi.pingjiao.domain.Teacher;

/**
 * 教师管理Service接口
 *
 * @author 胡浩鹏
 * @date 2022-10-15
 */
public interface ITeacherService
{
    /**
     * 查询教师管理
     *
     * @param teacherId 教师管理主键
     * @return 教师管理
     */
    public Teacher selectTeacherByTeacherId(Long teacherId);

    public Teacher selectTeacherByUserId(Long teacherId);

    public Teacher selectTeacherWithCourseByTeacherId(Long teacherId);

    /**
     * 查询教师管理列表
     *
     * @param teacher 教师管理
     * @return 教师管理集合
     */
    public List<Teacher> selectTeacherList(Teacher teacher);

    public List<Metaclass> selectMetaclassByTeacherIdAndCourseclassId(Long courseclassId, Long teacherId);

    /**
     * 新增教师管理
     *
     * @param teacher 教师管理
     * @return 结果
     */
    public int insertTeacher(Teacher teacher);

    /**
     * 修改教师管理
     *
     * @param teacher 教师管理
     * @return 结果
     */
    public int updateTeacher(Teacher teacher);

    /**
     * 批量删除教师管理
     *
     * @param teacherIds 需要删除的教师管理主键集合
     * @return 结果
     */
    public int deleteTeacherByTeacherIds(Long[] teacherIds);

    /**
     * 删除教师管理信息
     *
     * @param teacherId 教师管理主键
     * @return 结果
     */
    public int deleteTeacherByTeacherId(Long teacherId);

    /**
     * 根据教师工号获取教师信息
     * @author  hpf
     * @param  teacherNo 教工号
     * @return 教师
     */
    public Teacher selectTeacherByNo(String  teacherNo);
    /**
     * 根据教师id获取本学期评教成绩
     * @author  hpf
     * @param  teacherId 教工id
     * @return 教师
     */
    public List<Map<String, Object>> selectEvaluationScoreByTeacherId(Long  teacherId,Long activityId);
    /**
     * 根据教师id获取本学期评教活动
     * @author  hpf
     * @param  teacherId 教工id
     * @return 教师
     */
    List<Map<String, Object>> selectActivityByTeacherId(Long teacherId, String term);

    Object getInfoByUserId(Long userId);

    List<Map<String,Object>> getRank(Long teacherId);

    String importTeacher(List<Teacher> teacherList, String operName);
}
